package cn.airnan.dg.configs;

import cn.airnan.dg.entity.Player;
import cn.airnan.dg.entity.Room;
import cn.airnan.dg.entity.Topic;
import jakarta.websocket.Session;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;

/**
 * 全局缓存变量
 */
public class Global {

    /**
     * 消息类型-房间聊天（回答）
     */
    public static final String MSG_TYPE_ROOM_CHAT = "room-chat";

    /**
     * 消息类型-房间绘画
     */
    public static final String MSG_TYPE_ROOM_DRAW = "room-draw";

    /**
     * 消息类型-房间通知消息
     */
    public static final String MSG_TYPE_ROOM_MSG = "room-msg";

    /**
     * 题库
     */
    public static List<Topic> TOPICS = new ArrayList<>();

    /**
     * 房间列表
     */
    public static final Map<String, Room> ROOMS = new HashMap<>();

    /**
     * 玩家列表
     */
    public static final Map<String, Player> PLAYERS = new HashMap<>();

    /**
     * 会话列表
     */
    public static final CopyOnWriteArraySet<Session> SESSIONS = new CopyOnWriteArraySet<>();

    /**
     * 在线连接池
     */
    public static final Map<String, Session> SESSION_POOL = new HashMap<>();
}
